<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>constructor</title>
  </head>
  <body>
    <!-- 
        每个原型对象里面都有个 constructor 属性（constructor构造函数）
        作用：该属性指向该原型对象的构造函数，简单理解，就是指向我的爸爸，我是有爸爸的孩子
        constructor属性指向构造函数
        只要是原型里面都有一个constructor
     -->
    <!-- 
        constructor使用场景：
            如果有多个对象的方法，我们可以给原型对象采取对象形式赋值
            但是这样就会覆盖掉构造函数原型对象原来的内容（采取的是对象赋值的形式，会修改原来的对象，给本身是个对象--原型对象 ）
            ，这样修改后的原型对象constructor就不执向当前的构造函数了
            function Star(){}
            Star.prototype = {
                sing: function(){}
                dance:function(){}
            }
            ☆ constructor 的作用就是重新指回这个原型对象  构造函数
             function Star(){}
            Star.prototype = {
                constructor:Star
                sing: function(){}
                dance:function(){}
            }
      -->
    <script>
      // constructor 单词 构造函数
      // function Star(){

      // }
      // const ldh = new Star()
      // console.log(Star.prototype);
      // console.log(Star.prototype.constructor === Star);
      // Star.prototype.constructour  指向构造函数

      function Person() {}
      Person.prototype = {
        constructor: Person, // 让原型对象重新指回构造函数
        sing: function () {
          console.log("我会唱歌");
        },
        dance: function () {
          console.log("我会跳舞");
        },
      };
    </script>
  </body>
</html>
